/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package accesoDatos;

/**
 *
 * @author Juan David
 */
import java.sql.*;
import java.util.Vector;
import logica.*;
import javax.swing.JOptionPane;


public class DaoProfesor {
    
    FachadaBD fachada;

    public DaoProfesor() {
    fachada= new FachadaBD();
    }
    
    public int guardarProfesor(Profesor p, String id_grupo){
        String sql_guardar;
        
        int numFilas=0;
        
        sql_guardar="INSERT INTO Profesor(identificacion,nombre,telefono,direccion,e_mail) VALUES ('"+ p.getId()+"','"+
                p.getNombre()+"','"+p.getTelefono()+"','"+p.getDireccion()+"','"+p.getEmail()+"')";
        String sql="INSERT INTO Profesor_GrupoInves(id_profesor,id_grupo_inves)_VALUES ('"+p.getId()+"','"+id_grupo+"')";
        
        
        try{
            Connection conn=fachada.conectar();
            Statement sentencia=conn.createStatement();
            numFilas=sentencia.executeUpdate(sql_guardar);
            numFilas +=sentencia.executeUpdate(sql);
            fachada.desconectar(conn);
            System.out.print("Se inserto un profesor");
            return numFilas;
        }
          
        catch(SQLException e){ System.out.println(e); }
        catch(Exception e){ System.out.println(e); }
        return -1;      
        
    }
    
    public Profesor consultarProfesor(String id){
        Profesor p=new Profesor();
        String sql_select;
        sql_select ="SELECT identificacion,nombre,telefono,direccion,e_mail FROM profesor WHERE identificacion='" + id + "'";
        try {
            Connection con=fachada.conectar();
            Statement sentencia=con.createStatement();
            ResultSet tabla=sentencia.executeQuery(sql_select);
            
            
            while(tabla.next()){
               p.setId(tabla.getString(1));
              
               p.setNombre(tabla.getString(2));
               
               p.setTelefono(tabla.getString(3));              
             
               p.setDireccion(tabla.getString(4));
              
               p.setEmail(tabla.getString(5));
              
              System.out.println("ok");
            }
            con.close();
            return p;
            
        }
           catch(SQLException e){ System.out.println(e); }
         catch(Exception e){ System.out.println(e); }
        return null;
    }
    
    public int registrarCalificacionMateria(String cod_est, String cod_asig, String periodo, double notaFinal){
        
        String sql = "UPDATE matricula SET calificacion=" + notaFinal + " WHERE cod_est='" + cod_est
                + "' AND cod_asig='" + cod_asig + "' AND periodo='" + periodo + "';";
        System.out.println(sql);
        
        try{
            Connection c = fachada.conectar();
            Statement sentencia = c.createStatement();
            int numFilas = sentencia.executeUpdate(sql);
            fachada.desconectar(c);
            //System.out.println("Se registro la calificacion de la asignatura y cerro conexion");
            return numFilas;
        }
        catch(SQLException e){System.out.println("SQL "+e);}
        catch(Exception e){System.out.println("EC "+ e);}
        return -1;
    }
    
    
    public Vector<Articulo> consultarProductividad(String id_profesor){
  
        Vector<Articulo>  reporte=new Vector(1,1); 
        
        String sql="SELECT nombre,fecha_pub,tipo"
                   + "FROM articulo "
                   + "WHERE id IN (SELECT id_articulo FROM Escribir_Articulo WHERE id_profesor='"+id_profesor+"')";
        
    try{
            Connection c= fachada.conectar();
            Statement sentencia = c.createStatement();
            ResultSet res=sentencia.executeQuery(sql);
            
            while(res.next()){
                Articulo articulo=new Articulo();
                articulo.setId(res.getString(1));
                articulo.setNombre(res.getString(2));
                articulo.setNombreRevista(res.getString(3));
                articulo.setTipo(res.getString(4));
                articulo.setFechaPublicacion(res.getDate(5));
                articulo.setIdGrupo(res.getString(6));
                
                
                reporte.add(articulo);
            }
            fachada.desconectar(c);
            System.out.print("Productividad consultada y conexion cerrada");
            return reporte;
    
    
    }
     catch(SQLException e){}
        catch(Exception e){}
        
        return null;
    
    }
    
    public Profesor verificarProfesor(String user,String pass){
        Profesor profe=null;
        String sql = "SELECT * FROM profesor "
                + "WHERE usuario='" + user + "' AND passwd='" + pass + "'";
        
       try{
            Connection c= fachada.conectar();
            Statement sentencia = c.createStatement();
            ResultSet res=sentencia.executeQuery(sql);
            
            while(res.next()){
                profe= new Profesor();
                profe.setId(res.getString(1));
                profe.setNombre(res.getString(2));
                profe.setUsuario(res.getString(6));
                profe.setPassword(res.getString(7));
            }
            fachada.desconectar(c);
        }
        catch(SQLException e){}
        catch(Exception e){}
       return profe;
    }
}
